From: Giovanni Campagna Date: Tue, 6 Nov 2012 22:41:51 +0000 (+0100) Subject: ScreenShield: fix code to detect missing unlock dialog X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5454 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=271508c0a871ae508b94e06a7d11985b5998bc12;p=gnome-shell.git ScreenShield: fix code to detect missing unlock dialog If the session mode has no locking support, screenshield had code to unlock automatically, but it did so by checking the return value of the constructor, instead of checking if the constructor was actually callable, so it would get a TypeError before reaching the check. https://bugzilla.gnome.org/show_bug.cgi?id=687708 --- diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 7c7c7c020..8de5c6245 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -713,13 +713,15 @@ const ScreenShield = new Lang.Class({ _ensureUnlockDialog: function(onPrimary) { if (!this._dialog) { let constructor = Main.sessionMode.unlockDialog; - this._dialog = new constructor(this._lockDialogGroup); - if (!this._dialog) { + if (!constructor) { // This session mode has no locking capabilities this.unlock(); return; } + this._dialog = new constructor(this._lockDialogGroup); + + let time = global.get_current_time(); this._dialog.connect('loaded', Lang.bind(this, function() { if (!this._dialog.open(time, onPrimary)) {